package gui;

public class ControladoraGrafica {

	private static final Exception Boolean = null;
	private IPrincipal panel;
	private int posCinta1;
	private int posCinta2;
	private int posCinta3;
	private boolean tipoMovimientoCortadora;
	private boolean tipoMovimientoEstampadora;
	private boolean tipoMovimientoSelladora;
	private boolean tipoMovimientoRobot;
	private boolean tipoMovimientoRobot2;
	private int cortadora;
	private int estampadora;
	private int selladora;
	private int robot1;
	private int robot1CogerBlister;
	private int robot1CogerBollo;
	private int robot2;
	private int robot2Desechar;
	private int cinta3Moviendose;
	private int cinta3ControlPasado;
	private int cinta3ControlNoPasado;
	private Boolean chocolateVacio;
	private Boolean chocolateLleno;
	private Boolean carameloVacio;
	private Boolean carameloLleno;
	private Boolean bizcochosLleno;
	private Boolean bizcochosVacios;
	private Boolean robot1CogerBlisterBol;
	private Boolean robot1CogerBolloBol;
	private Boolean robot2Bol;
	private Boolean robot2DesecharBol;
	private Boolean cinta3MoviendoseBol;
	private Boolean cinta3ControlPasadoBol;
	private Boolean cinta3ControlNoPasadoBol;

	int contador=0;
	private boolean seMueveCinta1;
	private boolean seMueveCinta2;
	private boolean seMueveCinta3;

	private boolean blisterEnMesaBol;
	private boolean blisterEnMesa1Bol;
	private boolean blisterEnMesa2Bol;
	private boolean blisterEnMesa3Bol;
	private boolean blisterEnMesa4Bol;

	
	//ATRIBUTOS MOVIMIENTO
	private int dejarCaerBizcocho;
	private boolean sensor1Encendido;
	private boolean sensor2Encendido;
	private boolean sensor3Encendido;
	private boolean sensor4Encendido;
	private int secuenciaRobot;
	
	public ControladoraGrafica(){
		this.panel=new IPrincipal();
		panel.getFrame().setVisible(true);
		chocolateVacio=false;
		chocolateLleno=false;
		carameloVacio=false;
		carameloLleno=false;
		bizcochosLleno=false;
		bizcochosVacios=false;
		robot1CogerBlisterBol=false;
		robot1CogerBolloBol=false;
		robot2Bol=false;
		robot2DesecharBol=false;
		cinta3MoviendoseBol = false;
		cinta3ControlPasadoBol = false;
		cinta3ControlNoPasadoBol = false;
		blisterEnMesaBol = false;
		blisterEnMesa1Bol = false;
		blisterEnMesa2Bol = false;
		blisterEnMesa3Bol = false;
		blisterEnMesa4Bol = false;
		posCinta1=0;
		posCinta2=0;
		posCinta3=0;
		tipoMovimientoCortadora=false;
		cortadora=0;
		estampadora=0;
		selladora=0;
		secuenciaRobot=0;
		dejarCaerBizcocho=-1;

		robot1CogerBlister = 0;
		robot1CogerBollo = 0;
		robot2 = 0;
		robot2Desechar = 0;
		cinta3Moviendose = 0;
		cinta3ControlPasado = 0;
		cinta3ControlNoPasado = 0;
		
		seMueveCinta1=false;
		seMueveCinta2=false;
		seMueveCinta3=false;

	}
	
	
	
	public void indicarBlisterEnMesaCon0Pasteles(){
		this.blisterEnMesaBol = true;
		this.blisterEnMesa1Bol = false;
		this.blisterEnMesa2Bol = false;
		this.blisterEnMesa3Bol = false;
		this.blisterEnMesa4Bol = false;
	}
	
	public void indicarBlisterEnMesaCon1Pasteles(){
		this.blisterEnMesaBol = false;
		this.blisterEnMesa1Bol = true;
		this.blisterEnMesa2Bol = false;
		this.blisterEnMesa3Bol = false;
		this.blisterEnMesa4Bol = false;
	}
	
	public void indicarBlisterEnMesaCon2Pasteles(){
		this.blisterEnMesaBol = false;
		this.blisterEnMesa1Bol = false;
		this.blisterEnMesa2Bol = true;
		this.blisterEnMesa3Bol = false;
		this.blisterEnMesa4Bol = false;
	}
	
	public void indicarBlisterEnMesaCon3Pasteles(){
		this.blisterEnMesaBol = false;
		this.blisterEnMesa1Bol = false;
		this.blisterEnMesa2Bol = false;
		this.blisterEnMesa3Bol = true;
		this.blisterEnMesa4Bol = false;
	}
	
	public void indicarBlisterEnMesaCon4Pasteles(){
		this.blisterEnMesaBol = false;
		this.blisterEnMesa1Bol = false;
		this.blisterEnMesa2Bol = false;
		this.blisterEnMesa3Bol = false;
		this.blisterEnMesa4Bol = true;
	}
	
	public void pintar(){
		//panel.setChocolateVacio(chocolateVacio);
		//panel.setChocolateLleno(chocolateLleno);
		//panel.setCarameloVacio(carameloVacio);
		//panel.setCarameloLleno(carameloLleno);
		//this.moverCinta1();
		//denegarControlCalidad();
		//this.moverCinta3();
		if(seMueveCinta1){
			panel.setPosCinta1(posCinta1);
		}
		this.moverCinta2();
		if(seMueveCinta2){
			panel.setPosCinta2(posCinta2);
			
		}if(seMueveCinta3){
			if(cinta3ControlPasadoBol){
				System.out.println("En 1---");
				panel.setCinta3ControlNoPasado(false);
				panel.setCinta3ControlPasado(true);
				panel.setCinta3ControlPasado(posCinta3);
			}else if(cinta3ControlNoPasadoBol){
				System.out.println("En 2---");
				panel.setCinta3ControlNoPasado(true);
				panel.setCinta3ControlPasado(false);
				panel.setCinta3ControlNoPasado(posCinta3);
			}else{
				System.out.println("En 3---");
				panel.setCinta3ControlNoPasado(false);
				panel.setCinta3ControlPasado(false);
				panel.setCinta3Moviendose(posCinta3);
			}
		};
		
		//panel.setBizcochoLleno(this.bizcochosLleno);
		//panel.setBizcochoVacio(this.bizcochosVacios);
		//panel.setCortadora(cortadora);
		//panel.setEstampadora(estampadora);
		//panel.setSelladora(selladora);
		panel.cortar();
		panel.sellar();
		panel.estampar();
		
		//panel.dejarCaerBizcocho();
		
		//panel.moverBizcocho(contador);
		//contador++;
		//this.echarChocolate();
		//panel.setRobot1(robot1);
		//panel.setRobot2(robot2);
		if(robot2Bol)	{
			panel.setRobot1CogiendoBlister(true);
			
		}else if(robot2DesecharBol){
			panel.setRobot2Desechando(true);
		}
				
		panel.setBlisterEnMesa(blisterEnMesaBol);
		//panel.setBlisterEnMesa(true);
		panel.setBlisterEnMesa1(blisterEnMesa1Bol);
		panel.setBlisterEnMesa2(blisterEnMesa2Bol);
		panel.setBlisterEnMesa3(blisterEnMesa3Bol);
		panel.setBlisterEnMesa4(blisterEnMesa4Bol);
		
		//;
		
		
		if(robot1CogerBlisterBol){
			panel.setRobot1CogiendoBlister(true);
		}else if(robot1CogerBolloBol){
			panel.setRobot1CogiendoBollo(true);
		}
		
		//panel.setCinta3Moviendose(cinta3Moviendose);
		//panel.setCinta3ControlPasado(cinta3ControlPasado);
		//panel.setCinta3ControlNoPasado(cinta3ControlNoPasado);
		
		panel.repaint();
	}
	public IPrincipal getPanel(){
		return panel;
	}
	
	public void cambiar(){
		/*if(this.chocolateVacio){
			this.chocolateVacio=false;
			this.chocolateLleno=true;
		}else{
			this.chocolateVacio=true;
			this.chocolateLleno=false;
		}
		if(this.bizcochosVacios){
			this.bizcochosVacios=false;
			this.bizcochosLleno=true;
		}else{
			this.bizcochosVacios=true;
			this.bizcochosLleno=false;
		}
		if(this.carameloVacio){
			this.carameloVacio=false;
			this.carameloLleno=true;
		}else{
			this.carameloVacio=true;
			this.carameloLleno=false;
		}*/
		/*if(posMaquina1==7){
			posMaquina1=0;
		}else{
			posMaquina1++;
		}*//*
		if(cortadora==5){
			cortadora--;
			tipoMovimientoCortadora=true;
		}else if(tipoMovimientoCortadora && cortadora>0){
			cortadora--;
		}else{
			cortadora++;
			tipoMovimientoCortadora=false;
			
		}
		if(estampadora==5){
			estampadora--;
			tipoMovimientoEstampadora=true;
		}else if(tipoMovimientoEstampadora && estampadora>0){
			estampadora--;
		}else{
			estampadora++;
			tipoMovimientoEstampadora=false;
			
		}
		if(selladora==5){
			selladora--;
			tipoMovimientoSelladora=true;
		}else if(tipoMovimientoSelladora && selladora>0){
			selladora--;
		}else{
			selladora++;
			tipoMovimientoSelladora=false;
			
		}
		*/
		/*if(robot1==111){
			robot1--;
			tipoMovimientoRobot=true;
		}else if(tipoMovimientoRobot && robot1>0){
			robot1--;
		}else{
			robot1++;
			tipoMovimientoRobot=false;
			
		}
		if(robot2==60){
			robot2--;
			robot2Bol=true;
		}else if(robot2Bol && robot2>0){
			robot2--;
		}else{
			robot2++;
			robot2Bol=false;
		}
		this.activarExpendedoraBizcochos();
		
		if(robot2Desechar==34){
			robot2Desechar--;
			robot2DesecharBol=true;
		}else if(robot2DesecharBol && robot2Desechar>0){
			robot2Desechar--;
		}else{
			robot2Desechar++;
			robot2DesecharBol=false;
		}*/
		
		/*if(robot1CogerBlister == 47){
			robot1CogerBlister=0;
			//robot1CogerBlisterBol=true;
		//}else if(robot1CogerBlisterBol && robot1CogerBlister>0){
			//robot1CogerBlister--;
		}else{
			robot1CogerBlister++;
			robot1CogerBlisterBol=false;			
		}*/
		
		//if(robot1CogerBollo == 51){
			//robot1CogerBollo--;
			//robot1CogerBolloBol=true;
		//}else if(robot1CogerBolloBol && robot1CogerBollo>0){
			//robot1CogerBollo--;
		//}else{
			//robot1CogerBollo++;
			//robot1CogerBolloBol=false;			
		//}
		
		/*if(cinta3Moviendose == 18){
			cinta3Moviendose--;
			cinta3MoviendoseBol=true;
		}else if(cinta3MoviendoseBol && cinta3Moviendose>0){
			cinta3Moviendose--;
		}else{
			cinta3Moviendose++;
			cinta3MoviendoseBol=false;			
		}
		
		if(cinta3ControlPasado == 18){
			cinta3ControlPasado--;
			cinta3ControlPasadoBol=true;
		}else if(cinta3ControlPasadoBol && cinta3ControlPasado>0){
			cinta3ControlPasado--;
		}else{
			cinta3ControlPasado++;
			cinta3ControlPasadoBol=false;			
		}
		
		if(cinta3ControlNoPasado == 18){
			cinta3ControlNoPasado--;
			cinta3ControlNoPasadoBol=true;
		}else if(cinta3ControlNoPasadoBol && cinta3ControlNoPasado>0){
			cinta3ControlNoPasado--;
		}else{
			cinta3ControlNoPasado++;
			cinta3ControlNoPasadoBol=false;			
		}*/
		
		//this.pintar();
	}

	
	//METODOS DE MOVIMIENTO cinta 1
	//Muestra la caida del bizcocho.
	public void activarExpendedoraBizcochos(){
		if(dejarCaerBizcocho==-1){
			panel.dejarCaerBizcocho();
			//panel.encenderSensor1();
			dejarCaerBizcocho=0;
			//Encender sensor bizcochos
		}
	}
	
	public void echarChocolate(){
		//Encender sensor chocolate
		//panel.encenderSensor2();
		sensor1Encendido=true;
		//Cambiar el bizcocho
		panel.cambiarBizcochoChocolate();
		
	}
	
	public void apagarSensor1(){
		panel.apagarSensor1();
	}
	public void apagarSensor2(){
		panel.apagarSensor2();
	}
	public void apagarSensor3(){
		panel.apagarSensor3();
	}
	public void apagarSensor4(){
		panel.apagarSensor4();
	}
	public void apagarSensor5(){
		panel.apagarSensor5();
	}
	public void apagarSensor6(){
		panel.apagarSensor6();
	}
	public void apagarSensor7(){
		panel.apagarSensor7();
	}
	public void apagarSensor8(){
		panel.apagarSensor8();
	}
	public void encenderSensor4(){
		panel.encenderSensor4();
		
	}
	public void encenderSensor1(){
		panel.encenderSensor1();
		
	}
	
	public void encenderSensor2(){
		panel.encenderSensor2();
		
	}
	public void encenderSensor3(){
		panel.encenderSensor3();
	}
	public void echarCaramelo(){
		//Encender sensor caramelo
		//panel
		//panel.encenderSensor3();
		//Cambiar el bizcocho
		panel.cambiarBizcochoCaramelo();
	}
	public void ejecutarPasosRobot1(){
		if(secuenciaRobot==0){
			panel.setRobot1CogerBlister();
		}else if(secuenciaRobot>0 && secuenciaRobot<4){
			panel.setRobot1CogerBollo();
		}else if(secuenciaRobot==4){
			panel.setRobot1CogerBollo();
			secuenciaRobot=0;
		}
	}
	public void moverBizcocho(double posicion){
		panel.moverBizcocho(posicion);
		
	}
	
	public void cogerBlister(){
		robot1CogerBlisterBol=true;
		robot1CogerBolloBol=false;
	}
	
	public void cogerBizcocho(){
		robot1CogerBlisterBol=false;
		robot1CogerBolloBol=true;
	}
	public void pararRobot1(){
		robot1CogerBlisterBol=false;
		robot1CogerBolloBol=false;
	}
	public void pararCinta3(){
		seMueveCinta3=false;
	}
	public void pararCinta2(){
		seMueveCinta2=false;
	}
	public void pararCinta1(){
		seMueveCinta1=false;
	}
	public void moverCinta1(){
		if(sensor1Encendido){
			sensor1Encendido=false;
		}
		if(sensor2Encendido){
			sensor2Encendido=false;
		}
		if(sensor3Encendido){
			sensor3Encendido=false;
		}
		if(sensor4Encendido){
			sensor4Encendido=false;
		}
		if(posCinta1==15){
			posCinta1=0;
		}else{
			posCinta1++;
		}
		seMueveCinta1=true;
		
	}
	
	public void pasarControlCalidad(){
		cinta3ControlPasadoBol=true;
		cinta3ControlNoPasadoBol=false;
	}
	
	public void denegarControlCalidad(){
		cinta3ControlNoPasadoBol=true;
		cinta3ControlPasadoBol=false;
	}
	
	
	//METODOS DE MOVIMIENTO cinta 2
	public void activarCortadoraYEstampadora(){
		panel.cortar();
		panel.estampar();
		
	}
	
	public void moverBlister(){
		
		
	}	
	
	public void moverCinta2(){
		if(posCinta2==30){
			posCinta2=0;
		}else{
			posCinta2++;
		}
		seMueveCinta2=true;
	}
	
	
	public void moverCinta3(){

		if(!cinta3ControlPasadoBol && !cinta3ControlNoPasadoBol){

			if(posCinta3==18){
				posCinta3=0;
			}else{
				posCinta3++;
			}
		}else if(cinta3ControlPasadoBol){
			if(posCinta3==18){
				posCinta3=0;
			}else{
				posCinta3++;
			}
		}else {
			if(posCinta3==18){
				posCinta3=0;
			}else{
				posCinta3++;
			}
		}
		seMueveCinta3=true;
	}
	
	public void indicarEstadoNormalBizcocho(){
		this.bizcochosLleno=false;
		this.bizcochosVacios=false;
	}
	public void indicarBizcochosVacio(){
		this.bizcochosVacios=true;
		this.bizcochosLleno=false;
	}
	public void indicarBizcochosLleno(){
		this.bizcochosVacios=false;
		this.bizcochosLleno=true;
	}
	public void indicarEstadoNormalChocolate(){
		this.chocolateVacio=false;
		this.chocolateLleno=false;
	}  
	public void indicarEstadoNormalCaramelo(){
		this.carameloVacio=false;
		this.carameloLleno=false;
	} 
	public void indicarChocolateVacio(){
		this.chocolateVacio=true;
		this.chocolateLleno=false;
	} 
	public void indicarCarameloVacio(){
		this.carameloVacio=true;
		this.carameloLleno=false;
	}
	public void indicarChocolateLleno(){
		this.chocolateVacio=false;
		this.chocolateLleno=true;
	}
	public void indicarCarameloLleno(){
		this.carameloVacio=false;
		this.carameloLleno=true;
	}
	public void desecharProducto(){
		this.robot2Bol=false;
		this.robot2DesecharBol=true;
	}
	
	public void cogerProductoFinal(){
		this.robot2Bol=true;
		this.robot2DesecharBol=false;
	}
	
}
